package com.xiejr.controller;


import com.xiejr.api.dto.product.ItemsImgDTO;
import com.xiejr.converter.ItemsImgConverter;
import com.xiejr.entity.ItemsImg;
import com.xiejr.service.ItemsImgService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

/**
 * 商品图片 (ItemsImg)表控制层
 *
 * @author mobai
 * @since 2021-02-11 22:45:27
 */
@RestController
@RequestMapping("itemsImg")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@Slf4j
@Api(value = "商品图片  控制器", tags = {"商品图片  接口"})
public class ItemsImgController {
    /**
     * 商品图片  服务对象
     */
    private final ItemsImgService itemsImgService;


    /**
     * 商品图片  领域对象转换器
     */
    private final ItemsImgConverter itemsImgConvertor;


    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("/{id}")
    @ApiOperation("根据ID获取单条数据")
    public ItemsImg selectOne(@PathVariable String id) {
        return this.itemsImgService.getById(id);
    }


    /**
     * 获取所有
     *
     * @return 所有数据
     */
    @ApiOperation("获取所有")
    @GetMapping("/all")
    public List<ItemsImg> all() {
        return this.itemsImgService.list();
    }


    /**
     * 插入单条数据
     *
     * @param param 待插入数据
     * @return void
     */
    @ApiOperation("插入数据")
    @PostMapping("")
    public void insert(@RequestBody @Valid ItemsImgDTO param) {
        ItemsImg entity = this.itemsImgConvertor.dtoToEntity(param);
        this.itemsImgService.save(entity);
    }


    /**
     * 根据id删除数据
     *
     * @param id 主键
     * @return void
     */
    @ApiOperation("根据ID删除数据")
    @DeleteMapping("/{id}")
    public void deleteById(@PathVariable String id) {
        this.itemsImgService.removeById(id);
    }


}